# Python类型提示与函数注解

"""
1. 基本类型提示语法
- 变量类型提示: 变量名: 类型 = 值
- 函数参数类型提示: def 函数名(参数: 类型) -> 返回类型:
"""

# 基本类型示例
name: str = "张三"
age: int = 25
height: float = 1.75
is_student: bool = True


# 函数类型注解示例
def greet(name: str) -> str:
    """返回问候语"""
    return f"你好, {name}!"


"""
2. typing模块常用类型
- List: 列表类型
- Dict: 字典类型
- Union: 多种可能类型
- Optional: 可选类型(等价于Union[T, None])，其中T代表任意一种类型。例如，Optional[int] 等价于 Union[int, None]，表示该值可以是整数类型，也可以是 None。
"""
from typing import List, Dict, Union, Optional  # noqa: E402

# 复杂类型示例
names: List[str] = ["张三", "李四"]
person: Dict[str, Union[str, int]] = {"name": "王五", "age": 30}


# 可选参数示例
def get_student_info(student_id: int) -> Optional[Dict]:
    """根据学号获取学生信息，可能返回None"""
    if student_id == 1:
        return {"name": "张三", "age": 20}
    return None


"""
3. 类型提示的好处
- 提高代码可读性
- 帮助IDE进行代码补全和静态检查
- 便于生成文档
"""
